package com.ruoyi.common.entity.CoreEntity;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 库存锁定记录对象 stock_lock_record
 * 
 * @author yfk
 * @date 2025-08-07
 */
public class StockLockRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 关联商户信息表id（逻辑外键，关联store_info.id） */
    @Excel(name = "关联商户信息表id", readConverterExp = "逻=辑外键，关联store_info.id")
    private Long storeInfoId;

    /** 商品SKU ID（逻辑外键，关联sku.id） */
    @Excel(name = "商品SKU ID", readConverterExp = "逻=辑外键，关联sku.id")
    private Long skuId;

    /** 关联订单号 */
    @Excel(name = "关联订单号")
    private String orderNo;

    /** 锁定数量 */
    @Excel(name = "锁定数量")
    private Long lockQuantity;

    /** 锁定状态（1已锁定，2已释放，3已出库） */
    @Excel(name = "锁定状态", readConverterExp = "1=已锁定，2已释放，3已出库")
    private Long lockStatus;

    /** 锁定时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "锁定时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lockTime;

    /** 释放/出库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "释放/出库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date unlockTime;

    /** 逻辑删除标志（0-未删除，1-已删除） */
    private String delFlag;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setStoreInfoId(Long storeInfoId) 
    {
        this.storeInfoId = storeInfoId;
    }

    public Long getStoreInfoId() 
    {
        return storeInfoId;
    }

    public void setSkuId(Long skuId) 
    {
        this.skuId = skuId;
    }

    public Long getSkuId() 
    {
        return skuId;
    }

    public void setOrderNo(String orderNo) 
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo() 
    {
        return orderNo;
    }

    public void setLockQuantity(Long lockQuantity) 
    {
        this.lockQuantity = lockQuantity;
    }

    public Long getLockQuantity() 
    {
        return lockQuantity;
    }

    public void setLockStatus(Long lockStatus) 
    {
        this.lockStatus = lockStatus;
    }

    public Long getLockStatus() 
    {
        return lockStatus;
    }

    public void setLockTime(Date lockTime) 
    {
        this.lockTime = lockTime;
    }

    public Date getLockTime() 
    {
        return lockTime;
    }

    public void setUnlockTime(Date unlockTime) 
    {
        this.unlockTime = unlockTime;
    }

    public Date getUnlockTime() 
    {
        return unlockTime;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("storeInfoId", getStoreInfoId())
            .append("skuId", getSkuId())
            .append("orderNo", getOrderNo())
            .append("lockQuantity", getLockQuantity())
            .append("lockStatus", getLockStatus())
            .append("lockTime", getLockTime())
            .append("unlockTime", getUnlockTime())
            .append("delFlag", getDelFlag())
            .append("createTime", getCreateTime())
            .toString();
    }
}
